package com.itcz.maker.generator.file;

import freemarker.template.TemplateException;

import java.io.File;
import java.io.IOException;

/**
 * 文件生成器
 */
public class FileGenerator {
    /**
     * 生成
     *
     * @param model 数据模型
     * @throws TemplateException
     * @throws IOException
     */
    public static void doGenerator(Object model) throws TemplateException, IOException {
        // 1.静态文件生成
        // 获取项目根目录
        String projectPath = System.getProperty("user.dir");
        String parentPath = new File(projectPath).getParent();
        // 输入路径:ACM 示例代码模板目录
        String StaticInputPath = parentPath + File.separator + "demo-template" + File.separator + "acm-template";
        // 输出路径:直接输出到项目的根目录
        String StaticOutputPath = projectPath;
        // 使用自定义方法复制文件
        StaticFileGenerator.copyFilesByHutool(StaticInputPath, StaticOutputPath);

        // 2.动态文件生成
        // 输入路径
        String DynamicInputPath = projectPath + File.separator + "src/main/resources/templates/MainTemplate.java.ftl";
        // 输出路径
        String DynamicOutputPath = projectPath + File.separator + "acm-template/src/com/itcz/acm/MainTemplate.java";
        DynamicFileGenerator.doGenerate(DynamicInputPath, DynamicOutputPath, model);
    }
}
